perm filename ARKMAC.TEX[TEX,RWF] blob
sn#511885 filedate 1980-09-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00015 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 % codes and definitions
C00006 00003 % Font definitions and related macros
C00011 00004 % \output and footnotes
C00015 00005 % macro, for return, esc, bs, control characters, cursor, and inputcursor
C00016 00006 % paragraphs
C00018 00007 % underlining: under type bar boxit strut boxtop
C00020 00008 %% Old verbatim mode using \line
C00022 00009 % New verbatim mode \startcode and endcode
C00026 00010 % New Verbatim mode using $$\halign$$
C00029 00011 % Notes
C00030 00012 % chapter section
C00033 00013 % table of contents
C00035 00014 % Interesting Hacks: ifnull dnbrace upbrace
C00036 00015 % Documentation
C00037 ENDMK
C⊗;
% codes and definitions
\chcode '173←1
\chcode '176←2
\chcode '44←3
\chcode '26←4
\chcode '45←5
\chcode '43←6
\chcode '136←7
\chcode '1←8 % These set the code for the special characters
\def \trace{\chpar0←}
\trace'01400345
\def \jpar{\chpar1←}
\def \ragged{\chpar8←} % Shorthands for certain definitions
\def \lft #1{#1\hfill }
\def \ctr #1{\hfill #1\hfill }
\def \rt #1{\hfill #1}
\def \top #1{#1\vfill }
\def \mid #1{\vfill #1\vfill }
\def \bot #1{\vfill #1}
\def\vjust{\vbox} % the 1978 names for these things
\def\hjust{\hbox} % the 1978 names for these things
\def \rjustline #1{\hbox to size{\hskip0pt plus1000cm minus1000cm #1}}
\def \ctrline #1{\hbox to size{\hskip0pt plus1000cm minus1000cm #1\hskip0pt
plus1000cm minus1000cm}}
\def \ldots{{.\≥.\≥.}}
\def \cdots{{\char '401\≥\char '401\≥\char '401}}
\def \ldotss{{.\≥.\≥.\≥}}
\def \cdotss{\cdots \≥}
\def \ldotsm{{\≥.\≥.\≥.\≥}}
\def \vdots{\vbox
{\baselineskip 4pt \vskip 6pt \hbox{.}\hbox{.}\hbox{.}}
}
\def \cpile #1{\vcenter {\halign {\hfill $## $\hfill \cr #1}}}
\def \lpile #1{\vcenter {\halign {$## $\hfill \cr #1}}}
\def \rpile #1{\vcenter {\halign {\hfill $## $\cr #1}}}
\def \null{\hbox {}}
\def \spose #1{\hbox to 0pt
{\hskip 0pt minus 100pt #1 \hskip 0pt minus 10000000pt
}}
\def\log{\mathop{\char'154\char'157\char'147}\limitswitch}
\def\lg{\mathop{\char'154\char'147}\limitswitch}
\def\ln{\mathop{\char'154\char'156}\limitswitch}
\def\max{\mathop{\char'155\char'141\char'170}}
\def\min{\mathop{\char'155\char'151\char'156}}
\def\gcd{\mathop{\char g\char c\char d}}
% Font definitions and related macros
\chcode'100←12 % allow @ on this page to be parsed correctly
% font definitions for 8, 9, and 10 point fonts and friends
\font @←cmathx
\font a←cmr10 \font b←cmr9 \font c←cmr8 \font d←cmr7 \font e←cmr6 \font f←cmr5
\font g←cmi10 \font h←cmi9 \font i←cmi8 \font j←cmi7 \font k←cmi6 \font l←cmi5
\font m←cmsc10
\font n←cms10 \font o←cms9 \font p←cms8
\font q←cmb10 \font r←cmb9 \font s←cmb8
\font t←cmtt \font T←cmtt9 \font U←cmtt8
\font u←cmsy10 \font v←cmsy9 \font w←cmsy8 \font x←cmsy7 \font y←cmsy6 \font z←cmsy5
% font definitions for other size fonts
\font ;←cmtitl
\font <←cmssb \font =←cmss12
\font A←ms25 \font B←nons
\font P←peni11
% font request macros
\let \curfont=\:
\def \usefont #1{\curfont #1\def\fontcode{#1}}
\let \:=\usefont
% font family definitions
\def \tenpoint
{\baselineskip 12pt
\dispskip 12pt plus 3pt minus 9pt
\dispaskip 0pt plus 3pt
\dispbskip 7pt plus 3pt minus 4pt
\def \rm{\:a}
\def \sl{\:n}
\def \bf{\:q}
\def \it{\:g}
\def \tt{\:t}
\def \sy{\:u}
\def \sc{\:m}
\def \biglp{\mathopen {\vcenter {\hbox {\:@\char '0}}}}
\def \bigrp{\mathclose{\vcenter {\hbox {\:@\char '1}}}}
\mathrm adf
\mathit gjl
\mathsy uxz
\rm
\usertenpoint
}
\def \usertenpoint{}
\def \ninepoint
{\baselineskip 11pt
\dispskip 11pt plus 3pt minus 8pt
\dispaskip 0pt plus 3pt
\dispbskip 6pt plus 3pt minus 3pt
\def \rm{\:b}
\def \sl{\:o}
\def \bf{\:r}
\def \it{\:h}
\def \tt{\:T}
\def \sy{\:v}
\def \biglp{\mathopen {\hbox{\:a(}}}
\def \bigrp{\mathclose{\hbox{\:a)}}}
\mathrm bef
\mathit hkl
\mathsy vyz
\rm
\userninepoint
}
\def \userninepoint{}
\def \eightpoint
{\baselineskip 10pt
\def \rm{\:c}
\def \sl{\:p}
\def \bf{\:s}
\def \it{\:i}
\def \tt{\:U}
\def \sy{\:w}
\dispskip 5pt plus 3pt minus 2pt
\dispaskip 0pt plus 3pt
\dispbskip 5pt plus 3pt minus 2pt
\def \biglp{\mathopen {\hbox {\:a(}}}
\def \bigrp{\mathclose{\hbox {\:a)}}}
\mathrm cef
\mathit ikl
\mathsy wyz
\rm
\usereightpoint
}
\def \usereightpoint{}
\mathex @
% definitions of miscellaneous fonts
\def\ms{\:A}
\def\titl{\:;}
\def\ss{\:=}
\def\nons{\:B}
\def\peni11{\:P}
% definitions of large parentheses
\def \bigglp{\mathopen{\vcenter{\hbox{\:@\char'22}}}}
\def \biggrp{\mathclose{\vcenter{\hbox{\:@\char'23}}}}
\def \biggglp{\mathopen{\vcenter{\hbox{\:@\char'40}}}}
\def \bigggrp{\mathclose{\vcenter{\hbox{\:@\char'41}}}}
% definitions of glue
\def \qquad{\quad\quad}
\def \xskip{\hskip 7pt plus 3pt minus 4pt}
\def \yskip{\penalty-50\vskip 3pt plus 3pt minus 2pt}
\def \yyskip{\penalty-100\vskip 6pt plus 6pt minus 4pt}
% definitions of odd characters
\def \@{{\sy\char'174}}
\def \#{{\tt\char'43}}
\def \sharp{{\tt\char'43}}
\def \${{\tt\char'44}}
\def \%{{\char'45}}
\def \∧{{\tt{}∧}}
\def \\{{\char'134}}
\def \uparrow{$\up$}
\let \space=\ % for defining \ to be \hbox{\space} in \tt
% \output and footnotes
\varunit 0.7692in % one real inch
\output{\baselineskip 0pt\lineskip0pt % beginning of output routine, resets skips
\gdef\footnotebar{\hrule width5pc\vskip 3pt}
\if T\tpage % the next is used when tpage is "T" (title pages)
{\gdef\tpage{F} % reset tpage
\vskip .7vu % blank space in place of headlines
\page\advcount0 by \count1} % insert the page contents, no page #
\else{\if T\index{\indexoutput}
\else{\moveleft 10pt\vbox to .7vu{\hrule % horizontal rule at top of page
\hbox to 388pt{\trule\ifeven0{\topmark}\else{\botmark}\trule}
\hrule\vfill} % horizontal rule under the headline
\page\advcount0 by \count1} % insert the page contents
}} % end output routine
\setcount 0 1
\setcount 1 1 % increment in a positive direction
\def\tpage{F} % "global variables"
\def\index{F}
\def\trule{\vrule height 13.5pt depth 6.5pt} % used at top of page
\def\titlepage{\gdef\tpage{T}} % \titlepage sets tpage to T
\def\titlemark#1#2{\mark
{\ifeven0{\hbox to .45 in{\tenpoint \rm\hfill\count0\hfill\trule}
\hfill\ss#1\hfill}
\else{\hfill\ss#2\hfill
\hbox to .45 in{\tenpoint \rm\trule\hfill\count0\hfill}}}}
\def\normalhsize{\hsize 368pt}
\def\smallhsize{\hsize 330pt} % move right margin in 38 pts for indpar
\vsize 8.3vu \normalhsize \maxdepth 2pt \parindent 19pt
\parskip 0pt plus 1 pt \lineskip 1pt plus 0pt
\topskip 24pt plus 6pt minus 10pt \botskip 15pt plus 3pt minus 9pt
\topbaseline 0pt
\def\footnote#1#2{#1\botinsert{\footnotebar
\baselineskip10pt\hjust par size{\eightpoint\rm\unskip#1#2}}
\gdef\footnotebar{}}
\def\footnotebar{\hrule width5pc\vskip 3pt} % original definition
\def\upstar{\lower 3pt \hbox{$↑{\hbox{*}}$}}
\def\dagger{\lower 2pt \hbox{$↑\dag$}}
\def\ddagger{\lower 2pt \hbox{$↑\ddag$}}
% if you want to change \vsize, you have to \eject the first page first
% macro, for return, esc, bs, control characters, cursor, and inputcursor
\def \return{\lower 3 pt \hbox{\ms J}}
\def \esc{\lower 3 pt \hbox{\nons
\baselineskip 3 pt
\lineskip -1 pt
\vbox{ \hbox to 6 pt{\lft{e}}
\hbox to 6 pt{\ctr{s}}
\hbox to 6 pt{\rt {c}}
}}}
\def \bs{\lower 3 pt \hbox{\nons
\baselineskip 5 pt
\lineskip -1 pt
\vbox{ \hbox{BACK}
\hbox{SPACE}
}}}
\def \↑#1{{\tt{}CTRL/#1}}
\def\cursor{{\ms i}}
\def\inputcursor{{\ms g}}
% paragraphs
\def\textindent#1{\noindent
\hbox to 19 pt{\hskip0pt plus 1000pt minus 1000pt #1 }\!}
\def\hang{\par\hangindent 19pt}
\def\indent40#1{\noindent
\hbox to 40 pt{\hskip0pt plus 1000pt minus 1000pt #1 }\!}
\def\number#1{\levelone{#1}} % for upward-compatibility
\def\levelone#1{\par\hangindent 19pt\noindent
\hbox to 19 pt{#1\hfill}\!}
\def\leveltwo#1{\par\hangindent 38pt\noindent
\hbox to 38 pt{\hbox to 19pt{\hfill}#1\hfill}\!}
\def\levelthree#1{\par\hangindent 57pt\noindent
\hbox to 57 pt{\hbox to 38pt{\hfill}#1\hfill}\!}
\def\nnumber#1{\par\hangindent 50pt\noindent
\hbox to 50 pt{#1\hfill}\!}
\def\indpar#1{\par\smallhsize\leveltwo{}{#1}\par\normalhsize}
% underlining: under type bar boxit strut boxtop
\def\undertext #1{$\underline{\hbox{#1}}$} % underline in horizontal mode
\def\under#1{\undertext{#1}} % upward compatibility
\def\type #1>#2{\par\indpar{\tt #1\under{#2}}\par} % type a line (as in dialogue)
% the second argument is underlined, good for prompts
\def\ttype #1>#2{\par\noindent{\ninepoint\tt \unskip#1\under{#2}}\par} % type a line (as in dialogue)
\def\overtext #1{$\overline{\hbox{#1}}$} % overline in horizontal mode
\def\bar #1{\overtext{#1}} % upward compatibility
\def\boxit#1{\vbox{\hrule\hbox{\vrule\hskip3pt
\vbox{\vskip3pt#1\vskip3pt}\hskip3pt\vrule}\hrule}}
\def\strut{\lower 3.5pt\vbox to 12pt{}}
\def\boxtop#1{\save9#1\lower 1ht9\box9}
%% Old verbatim mode using \line
%%
%\chcode '15=12 %
%\def\verbatimmode{\chcode'15=12\chcode '40=13%
%\gdef\line##1
%{\par\penalty1000\noindent##1\line}\line}%
%\def\endverbatimmode{\chcode'15=5\chcode'40=10%
%\gdef\line{}}%
%\chcode'15=5 %
%\def\startcode{\par\parskip 0pt plus 0pt\penalty -1000\vskip 4pt plus 4pt\eightpoint\tt\verbatimmode}
%\def\startcodenoglue{\par\parskip 0pt plus 0pt\eightpoint\tt\verbatimmode}
%\def\endcode{\endverbatimmode\parskip 0pt plus 1pt\par\vskip 5pt plus 5pt\fontsize\rm\penalty -100}
%\def\endcodenoglue{\endverbatimmode\parskip 0pt plus 1pt\par\fontsize\rm\penalty 1000}
%%
%\def\startoutput{\par\penalty -1000\vskip 4pt{\tenpoint
% $\down\qquad\down\qquad\down\qquad\down\qquad\down\qquad\down\qquad\down$\par}
% \vskip 5pt}
%%
% New verbatim mode \startcode and endcode
% To use, code:
% \startcode
% statements
% \endcode
%
% The code is listed verbatim without any page breaks.
% To allow a page break, put \allowbreak on a line. If there
% is no break, a blank line is generated.
%
% \startcode supplies 4 pt of glue
% \endcode supplies 5 pt of glue
% The code is printed in \ninepoint \tt mode
% To avoid glue, code \startcodenoglue or \endcodenoglue
% Note that \fontsize must be defined to be your normal size of type, such
% as \tenpoint
% Use of tabs in verbatim mode will give an error message.
% Define \<cr> to be \CR when enabled
\chcode'15←12\def\
{\CR}\chcode'15←5 %
% Define \<tab> to be \tab when enabled
\chcode'11←12\def\ {\tab}\chcode'11←10
% will cause an error message unless \tab is defined
\def\startcodenoglue{\par
\parskip 0pt
\ninepoint\tt
\chcode'11←13 % define tab to give an error
\chcode'15←13 % define <return> to generate \cr
\chcode'40←13 % define space to generate \<space> (a real space)
\def\ {\hbox{\space}} % make space exactly one unshrinkable space
\def\CR{\par\penalty2000\noindent\hbox{\!}}}
\def\endcodenoglue{\par\penalty2000 % force glue to this page
\vskip-11pt
\chcode'11←10 % define tab to be a space
\chcode'15←5 % define <return> be a end of line
\chcode'40←10 % define space to be a space
\def\ {\space} % make "\ " as normal
\fontsize
\parskip 0pt plus 1pt
}
\def\startcode{\par\penalty-4000\vskip 5pt plus 1pt minus 1pt\startcodenoglue}
\def\endcode{\endcodenoglue\penalty-4000\vskip 6pt plus 1pt minus 1pt}
\def\startoutput{\par\penalty-4000\vskip 5pt plus 1pt minus 1pt{\tenpoint
$\down\qquad\down\qquad\down\qquad\down\qquad\down\qquad\down\qquad\down$\par}
\vskip 6pt plus 1pt minus 1pt}
\def\allowbreak{\par\penalty 2000\vskip-11pt\penalty-8000\vskip 11pt plus 1pt\par}
\def\allowbreaknoglue{\par\penalty 2000\vskip-11pt\penalty-8000\par}
% New Verbatim mode using $$\halign$$
% To use, code the following:
% \verbatim{
% follow with code
% } terminates verbatim mode.
% Note that \verbatim stuff will not be broken across page boundaries.
% To allow a break, use \noalign{\penalty-2000}%
% or \breakhere%
% Note the absence of spaces in the above.
% Note that the % is necessary to avoid an extra line generated.
% Note that \fontsize must be defined to be your normal size of type, such
% as \tenpoint
% These macros rely upon the definitions of \<cr> and \<tab> on the previous page.
% Use of tabs in verbatim mode will give an error message.
\def\verbatim{\par % temporary
\gdef\CR{\cr\noalign{\penalty 1000}}
\chcode'11←13 % define tab to give an error
\chcode'15←13 % define <return> to generate \cr
\chcode'40←13 % define space to generate \<space> (a real space)
\verbatimgenerate}
\def\verbatimgenerate#1{{\ninepoint\tt$$\halign to size{##\hfill\cr#1}$$}
\chcode'11←10 % define tab to be a space
\chcode'15←5 % define <return> be a end of line
\chcode'40←10 % define space to be a space
}
\def\breakhere{\noalign{\penalty -2000\vskip 11 pt}}
\def\threecol{\par
\gdef\CR{\cr\noalign{\penalty 1000}}
\chcode'11←13 % define tab to give an error
\chcode'15←13 % define <return> to generate \cr
\chcode'40←13 % define space to generate \<space> (a real space)
\threecolgenerate}
\def\threecolgenerate#1{{\ninepoint\tt\halign{##\hfill⊗##\hfill⊗##\hfill\cr#1}}%
\chcode'11←10 % define tab to be a space
\chcode'15←5 % define <return> be a end of line
\chcode'40←10 % define space to be a space
}
% Notes
% \sendnotes creates a list of entries which will be output when
% \putnotes is used. This should be at the end of the manuscript.
\def \sendnotes#1{\save0\vbox{\unbox\box0\hbox par size{Page \count0. #1}}}
\def \putnotes{\specialbegin{Fixup Notations}\unbox0}
% chapter section
\def\chapterbegin#1{\par\titlemark{Chapter \count4}{\sectionname}
\par\advcount 4 \setcount 5 0
\vfill\eject
\xdef\sectionnumber{\count4}
\gdef\sectionname{#1}
\par\titlemark{Chapter \count4}{#1}
{\noindent \ss Chapter \count4{.} #1}
\par\posthdrskip}
\setcount 4 0
\def\sectionbegin#1{\par\titlemark{Section \sectionnumber}{\sectionname}
\par\advcount 5 \setcount 6 0
\sectionskip
\xdef\sectionnumber{\count4{.}\count5}
\gdef\sectionname{#1}
\par\titlemark{Section \sectionnumber}{#1}
{\noindent \tenpoint \bf $\bullet$\ Section \sectionnumber.\ \ #1}
\par\posthdrskip}
\def\subsectionbegin#1{\par\titlemark{Section \sectionnumber}{\sectionname}
\par\advcount 6 \setcount 7 0
\sectionskip
\xdef\sectionnumber{\count4{.}\count5{.}\count6}
\gdef\sectionname{#1}
\par\titlemark{Section \sectionnumber}{#1}
{\noindent \tenpoint \bf $\bullet$\ Section \sectionnumber.\ \ #1}
\par\posthdrskip}
\def\dimsectionbegin#1{\par\titlemark{Section \sectionnumber}{\sectionname}
\par\advcount 7
\sectionskip
\xdef\sectionnumber{\count4{.}\count5{.}\count6{.}\count7}
\gdef\sectionname{#1}
\par\titlemark{Section \sectionnumber}{#1}
{\noindent \tenpoint \bf $\bullet$\ Section \sectionnumber.\ \ #1}
\par\posthdrskip}
\def\specialbegin#1{\par\titlemark{#1}{\sectionname}
\par\vfill\eject
\sectionskip
\gdef\sectionnumber{#1}
\gdef\sectionname{#1}
\par\titlemark{#1}{#1}
{\noindent \ss #1.}
\par\posthdrskip}
\def\settitle#1{\par\titlemark{#1}{#1}
\gdef\sectionnumber{#1}
\gdef\sectionname{#1}
}
\def \posthdrskip{\par\penalty 1000\vskip 5pt\penalty 1000}
\def \sectionskip{\par\penalty-200\vskip 24pt plus 12pt minus 6pt}
\def \sectionnumber{}
\def \sectionname{}
\def \hdr#1{\par\vskip 11pt\ctrline{\bf #1}\par\posthdrskip}
% table of contents
\def\begintofc{\setcount 4 0 % chapter 0
\setcount 0 0 % initial page number for cover page
\setcount 1 -1 % page number increment - roman numerals
\specialbegin{Table of Contents}}
\def\chaptertofc#1#2.{
\par\advcount 4 \setcount 5 0
\hbox to size{\hbox to 30pt{\bf\count4.\hfill}{#1}
\leaders\hrule\hfill\hbox to 20pt{\hfill#2}}}
\def\sectiontofc#1#2.{
\par\advcount 5 \setcount 6 0
\hbox to size{\hbox to 45pt{\bf\count4.\count5.\hfill}{#1}
\leaders\hrule\hfill\hbox to 20pt{\hfill#2}}}
\def\subsectiontofc#1#2.{
\par\advcount 6 \setcount 7 0
\hbox to size{\hbox to 60pt{\bf\count4.\count5.\count6.\hfill}{#1}
\leaders\hrule\hfill\hbox to 20pt{\hfill#2}}}
\def\dimsectiontofc#1#2.{
\par\advcount 7
\hbox to size{\hbox to 75pt{\bf\count4.\count5.\count6.\count7.\hfill}{#1}
\leaders\hrule\hfill\hbox to 20pt{\hfill#2}}}
\def\endtofc{\par\vfill\eject % put out this page before screwing up page #
\setcount 4 0 % chapter 0 done
\setcount 0 0 % initial page number
\setcount 1 1 % increment direction
}
% Interesting Hacks: ifnull dnbrace upbrace
\def\ifnull#1#2@then#3@else#4{\if?#1{#3}\else{#4}}
% to use \ifnull #1?2@then{<true clause>}@else{<false clause>}
\def\bracex{\leaders\hrule height 1.5pt \hfill}
\def\dnbrace{$\char'772$\bracex$\char'775
\char'774$\bracex$\char'773$}
\def\upbrace{$\char'774$\bracex$\char'773
\char'772$\bracex$\char'775$}
% Documentation
%
% Counters and use
% 0 page number, if negative print value plus value in counter 1
% 1 page number increment, +1 or -1
% 2 unused
% 3 unused
% 4 chapter number
% 5 section number
% 6 subsection number
% 7 diminished section number
% 8 unused
% 9 unused
%
% Boxes
% 0 \sendnotes
% 9 \boxtop